Fossil: Puesta en marcha y configuración del entorno web


Sigo con esta serie de artículos sobre Fossil centrada en el tema de la gestión de documentación. Después de comentar la documentación incrustada, voy a comentar la puesta en marcha y configuración del del servidor web de Fossil.

El servidor web de Fossil permite gestionar a través de un entorno web tanto el wiki como el sistema de incidentes.

Arrancando el servidor web de Fossil

El primer paso es descargar Fossil para nuestra plataforma: Windows, Mac, Linux o OpenBSD. Para simplificar el proceso, voy a suponer que has descargadoFossil para Windows y que has colocado fossil.exe en la carpeta c:\fossil\.

Una vez tenemos el ejecutable, debemos crear el repositorio: aunque no utilizaremos el sistema de control de versiones, el repositorio contiene también la base de datos del wiki y la del sistema de tickets.

Para inicializar el repositorio, utilizamos el comando init, seguido del nombre del repositorio (elegimos fossilWiki, por ejemplo):

fossil init fossilWiki

La salida del comando debe ser algo parecido a:
project-id: cc4aa34998d6a9caacd0872901536df6330cd003
server-id:  542c972e5072de830ce39447f549885da8cd3ecb
admin-user: UserName (initial password is "fee7c5")
El project-id y server-id puedes descartarlos; sin embargo, es conveniente que recuerdes el nombre de usuario y el password asociado para poder acceeder y configurar el entorno web más adelante.

Una vez creado el repositorio, lo abrimos mediante el comando open (indicando el nombre del repositorio):

fossil open fossilWiki

Ya sólo queda lanzar el servidor usando el comando server. Por defecto, el servidor escucha peticiones en el puerto 8080. En mi caso, como ya tengo un servidor de Fossil activo, lo lanzaré en un puerto diferente al 8080 usando el parámetro --port:

fossil server --port 8081

La salida del comando nos indica que el servidor está funcionando y en activo en el puerto especificado:
c:\fossil\>fossil server --port 8081
Listening for HTTP requests on TCP port 8081
Type Ctrl-C to stop the HTTP server
Comprobamos que funciona correctamente apuntando el navegador a la ip de nuestro servidor en el puerto especificado:


A partir de este momento podemos cerrar la conexión al servidor donde ejecutamos el servidor de Fossil, ya que el resto de configuración se realiza desde el entorno de administración web.

Acceso web y configuración básica del wiki

Al pulsar sobre Login accedemos a la página de autenticación de usuarios. Como detalle destacable, vemos que se genera un password para el usuario anonymousen forma de "captcha"; de esta forma podemos permitir accesos anónimos evitando que robots y spammers automatizados polucionen el wiki.

Accedemos con las credenciales proporcionadas por Fossil al crear el repositorio.

Un detalle que no me ha gustado ha sido que, por algún motivo, la web muestra Unnamed Fossil Project, aunque quizás lo lógico sería que el nombre por defecto del proyecto fuera el nombre del repositorio. No es nada grave, ya que podemos configurar el nombre que queramos a través del entorno web de administración del servidor.

El siguiente paso es pulsar sobre Admin y configurar algunos aspectos del wiki.

En la página de administración encontramos una lista de enlaces a través de los que podemos modificar cualquier aspecto tanto del wiki como del sistema de tickets.

Esta lista no parece estar ordenada por ningún criterio particular; agrupar opciones relacionadas o una simple ordenación alfabética hubiera sido mucho mejor.

Configurando los usuarios

Afortunadamente, junto a cada enlace encontramos una descripción detallada del conjunto de opciones que podemos modificar en cada una de estas subpáginas de configuración.

El wiki proporciona cuatro usuarios predefinidos genéricos: anonymousdevelopernobody y reader, cada uno con un conjunto particular de permisos que podemos usar como guía. Fossil cuenta con un extenso conjunto de permisos basados en "letras". El usuario anonymous cuenta con permisos hmncz (de nuevo, el orden podría haber sido alfabético, ¿no?). Cada uno de estos permisos está explicado en la página Users y permite ajustar con bastante granularidad los permisos asignados a cada usuario. Además, los usuarios heredan los privilegios de otros usuarios: por ejemplo, cualquier usuario -autenticado o no- hereda los permisos del usuario nobody.

Página de captcha para el usuario anonymous

Si el usuario se ha autenticado como anonymous (usando el captcha de la página de login), entonces dispone de los privilegios anonymous y nobody... Todas estas combinaciones están explicadas en la página de configuración de cada usuario.

Es probable que, a no ser que tengas buenas razones para ello, decidas usar los usuarios genéricos como base para los usuarios de tu sistema.

Además de estos usuarios, el usuario que ha creado el repositorio dispone de un superpoder en forma de permiso s: el poder de configuración. Un usuario con permiso s puede acceder a la configuración del entorno web.

Lo mejor es que crees un usuario 'administrador' con permisos s y que conviertas tu usuario a developer o similar para evitar problemas de seguridad.

Nombre y descripción del entorno web

Como he comentado más arriba, el entorno web no hereda el nombre del repositorio, sino que muestra Unnamed Fossil Project como título de la web.

En la página de Configuration, además del nombre y la descripción del proyecto, podemos indicar si queremos edición WYSIWYG en el wiki. Si marcamos esta casilla, en la página de edición del contenido del wiki aparece una barra de herramientas que nos permite introducir contenido en el wiki como en un procesador de texto moderno, sin necesidad de aprender las reglas del wiki.

También podemos decidir no usar las reglas del wiki y usar directamente HTML. En este caso, esta opción debe usarse sólo con usuarios de confianza ya queFossil no realizará ninguna comprobación sobre las etiquetas que se introducen (creando potenciales y graves problemas de seguridad).

De nuevo, quizás la mejor opción sea la activación del modo WYSIWYG sin activar HTML completo.

fossil ui versus fossil server

Si consultas la documentación oficial sobre cómo configurar un servidor Fossil observarás que podemos arrancar el servidor web de Fossil mediante dos comandos:
  • fossil server fossilWiki
  • fossil ui fossilWiki
En los dos casos, Fossil arranca un servidor web en el puerto 8080 en la máquina local. La diferencia entre los comandos es que el segundo abre el navegador por defecto del sistema en la URL localhost:8080 y además hace que el servidor sea únicamente accesible desde la IP 127.0.0.1. Es decir, usando fossil ui no es posible servir contenido a otra máquina diferente a la local.

Si estás configurando un servidor para trabajar en equipo, debes utilizar el comando server, de manera que el resto de miembros de tu equipo pueda acceder al entorno web proporcionado por Fossil. El comando ui permite visualizar de forma gráfica la historia de modificaciones, los comentarios asociados a cada commit, las diferentes ramas, etc... El acceso a este entorno web local se realiza con el superpoder s, ya que el usuario local tiene control total sobre su propio repositorio (y también sobre el wiki y el sistema de tickets asociado).

Resumen

En este artículo he comentado cómo poner en marcha y cómo configurar el servidor web incorporado en Fossil.

Fossil permite crear y asignar diferentes niveles de permisos a los usuarios del entorno web, de manera que podemos establecer con precisión qué acciones puede realizar cada uno de los usuarios.

También hemos visto que Fossil permite personalizar completamente este entorno web que proporciona, tanto desde un punto de vista estético como funcional.

En el proximo artículo nos centraremos en el uso del wiki: creación de páginas, enlaces entre ellas, etc...

Comentarios